package aventuraespacial;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;



/**
 * @author    woodoo
 */
public class PaqueteBalas extends Poder{
    
	
	
    /**
	 * @uml.property  name="bala"
	 * @uml.associationEnd  
	 */
    private Bala bala;
    
    /************************* CONSTRUCTOR DE PAQUETE DE BALAS  ************************/
    
    public PaqueteBalas (double x, double y, double velocidad,double angulo, Bala bala){
        super(x,y,velocidad,angulo);
        this.bala=bala;
        setImagen(cargarImagen(bala.getNombreIcono()));
               
    }

    
    
    /************************* IMPLEMENTACION DE METODOS ABSTRACTOS **************************/
    @Override 
    public void asignarPoder(Nave nave) {
    	/**PARA EVISTAR CREAR MUCHAS SUB CLASES DE PAQUETE DE BALAS, LO QUE AHGO
    	 * ES REUTILIZARLA, Y A LA HORA DE CREAR UN PAQUETE VARIO EL TIPO DE BALA, 
    	 * ESL PROBLEMA ES Q NO QUIERO Q TODAS LAS BALAS SE GUARDEN DE LA MISMA FORMA
    	 * EN PARTICULA LA BALA ESPECIAL SE COMPORTA DIF DE LAS BALA COMUNES
    	 * POR ESO DELEGO LA TAREA DE Q SE ASIGNE EL PODER EN CADA BALA.*/
    	bala.establecerModeloNave(nave);
    }

    @Override
    public boolean fueraDePantalla() {
    	        
    	if (this.x<(0) || this.x> (EspacioExterior.ANCHO_PANTALLA) ) return true;
        else if ( this.y< (0) || this.y> (EspacioExterior.ALTO_PANTALLA)) return true;
            else return false;
    }

	@Override
	public Rectangle getBordes() {
		int mitadAncho= (int) (ANCHO_PODER/2 );
		int mitadAlto=(int) (ALTO_PODER/2) ;
		return new Rectangle((int)this.getX()-mitadAncho,(int)this.getY()-mitadAlto,ANCHO_PODER,ALTO_PODER);
	}
	
	
	
	@Override
	public void dibujar(Graphics2D g) {
		AffineTransform identidad= new AffineTransform();
		AffineTransform trans= new AffineTransform();
		/*g.setTransform(identidad);
		g.translate(getX()-(Poder.ANCHO_PODER/2), getY()-(Poder.ALTO_PODER/2));
		g.setColor(Color.RED);
		g.fill(getForma());
		g.setTransform(identidad);
		g.setColor(Color.BLACK);
		g.drawRect((int)getX(),(int) getY(), 1, 1);*/
		if(ObjetoEspacial.isBordesActivados()){
			g.setTransform(identidad);
			g.setColor(Color.WHITE);
			g.draw(getBordes());
		}
		
		
		trans.setTransform(identidad);
		trans.translate(x-(ANCHO_PODER/2), y-(ALTO_PODER/2));
		//trans.scale(1,1);
		g.drawImage(getImagen(),trans,null);
		
	}



	

	

	
}